package main

/*
* Content: fmt包-Print输出、常用占位符、fmt包-FPrint输出、fmt包-SPrint输出、fmt包-获取输入
* --------------------------------------------------
* go fmt包详解: https://blog.csdn.net/qq_55752792/article/details/125894527
 */

import "fmt"

func MyBagFmt() {
	fmt.Println("Hello")

	// fmt包-Print输出
	fmt.Println("--------------------fmt包-Print输出--------------------")

	// 输出
	fmt.Print("不换行输出---")
	fmt.Println("换行输出")
	fmt.Printf("格式化输出: %v\n", 819)

	// 常用占位符
	fmt.Println("--------------------常用占位符--------------------")

	// 常用占位符: %v:默认格式    %T:打印类型    %d:十进制    %b:二进制    %f:默认宽度小数    %e:科学计数法
	//			  %9f:宽度为9,默认精度    %.2f:默认宽度,精度为2    %9.2f:宽度为9,精度为2     %9.f:宽度为9,精度为0
	//			  %t:布尔值      %s:字符串

	// fmt包-FPrint输出
	fmt.Println("--------------------fmt包-FPrint输出--------------------")
	// Fprint系列函数会将内容输出到一个io.Writer接口类型的变量w中，我们通常用这个函数 往文件中写入内容。

	// ...

	// fmt包-SPrint输出
	fmt.Println("--------------------fmt包-SPrint输出--------------------")
	// Sprint系列函数会把传入的数据生成并返回一个字符串。

	// 测试
	name := "谢清照"
	age := 18
	info := fmt.Sprintf("姓名: %s, 年龄: %d", name, age)
	fmt.Printf("fmt.Sprintf(): %s\n", info)

	// fmt包-获取输入
	fmt.Println("--------------------fmt包-获取输入--------------------")

	// fmt.Scan()
	fmt.Print("请输入姓名和年龄:")
	var (
		name2 string
		age2  int
	)
	fmt.Scan(&name2, &age2) // 输入时用 空格 或 换行 隔开
	fmt.Printf("输入的值为： 姓名:%s 年龄:%d \n", name2, age2)
}
